17377
14905
Las respuestas de esta pregunta son un esfuerzo comunitario. Edite las respuestas existentes para mejorar esta publicación. Actualmente no acepta nuevas respuestas o interacciones.
¿Cómo puedo redirigir al usuario de una página a otra usando jQuery o JavaScript puro? 
1
2
Siguiente
Uno no simplemente redirige usando jQuery
jQuery no es necesario y window.location.replace (...) simulará mejor una redirección HTTP.
window.location.replace (...) es mejor que usar window.location.href, porque replace () no mantiene la página de origen en el historial de la sesión, lo que significa que el usuario no se quedará atascado en un back- botón fiasco.
Si desea simular que alguien hace clic en un enlace, utilice
location.href
Si desea simular una redirección HTTP, use location.replace
Por ejemplo:
// comportamiento similar al de un redireccionamiento HTTP
window.location.replace ("http://stackoverflow.com");
// comportamiento similar a hacer clic en un enlace
window.location.href = "http://stackoverflow.com";
|
ADVERTENCIA: Esta respuesta se ha proporcionado simplemente como una posible solución; obviamente no es la mejor solución, ya que requiere jQuery. En su lugar, prefiera la solución de JavaScript pura.
$ (ubicación) .attr ('href', 'http://stackoverflow.com')
|
Forma estándar de JavaScript "básica" para redirigir una página
window.location.href = 'newPage.html';
O más simplemente: (ya que la ventana es global)
location.href = 'newPage.html';
Si estás aquí porque estás perdiendo HTTP_REFERER al redirigir, sigue leyendo:
(De lo contrario ignore esta última parte)
La siguiente sección es para aquellos que usan HTTP_REFERER como una de las muchas medidas de seguridad (aunque no es una gran medida de protección). Si está utilizando Internet Explorer 8 o versiones anteriores, estas variables se pierden al utilizar cualquier forma de redireccionamiento de páginas de JavaScript (location.href, etc.).
A continuación vamos a implementar una alternativa para IE8 y versiones inferiores para que no perdamos HTTP_REFERER. De lo contrario, casi siempre puede usar simplemente window.location.href.
Las pruebas con HTTP_REFERER (pegado de URL, sesión, etc.) pueden ayudar a determinar si una solicitud es legítima.
(Nota: también hay formas de evitar / falsificar estas referencias, como se indica en el enlace de droop en los comentarios)
Solución simple de prueba entre navegadores (alternativa a window.location.href para Internet Explorer 9+ y todos los demás navegadores)
Uso: redirect ('anotherpage.aspx');
función de redireccionamiento (url) {
var ua = navigator.userAgent.toLowerCase (),
isIE = ua.indexOf ('msie')! == -1,
versión = parseInt (ua.substr (4, 2), 10);
// Internet Explorer 8 y versiones anteriores
if (isIE && versión <9) {
var link = document.createElement ('a');
link.href = url;
document.body.appendChild (enlace);
link.click ();
}
// Todos los demás navegadores pueden usar el estándar window.location.href (no pierden HTTP_REFERER como lo hace Internet Explorer 8 y versiones inferiores)
else {
window.location.href = url;
}
}
|
Hay muchas formas de hacer esto.
// window.location
window.location.replace ('http://www.example.com')
window.location.assign ('http://www.example.com')
window.location.href = 'http://www.example.com'
document.location.href = '/ ruta'
// window.history
window.history.back ()
window.history.go (-1)
// window.navigate; SOLO para versiones antiguas de Internet Explorer
window.navigate ('top.jsp')
// Probablemente no bueno
self.location = 'http://www.example.com';
top.location = 'http://www.example.com';
// jQuery
$ (ubicación) .attr ('href', 'http: //www.example.com')
$ (ventana) .attr ('ubicación', 'http: //www.example.com')
$ (ubicación) .prop ('href', 'http://www.example.com')
|
Esto funciona para todos los navegadores:
window.location.href = 'tu_url';
|
Sería útil que fuera un poco más descriptivo en lo que está tratando de hacer. Si está intentando generar datos paginados, existen algunas opciones para hacerlo. Puede generar enlaces separados para cada página a la que desea poder acceder directamente.
 1 
 2 
 3 
...
Tenga en cuenta que la página actual en el ejemplo se maneja de manera diferente en el código y con CSS.
Si desea que los datos paginados se cambien a través de AJAX, aquí es donde entraría jQuery. Lo que haría es agregar un controlador de clic a cada una de las etiquetas de anclaje correspondientes a una página diferente. Este controlador de clic invocaría un código jQuery que busca la página siguiente a través de AJAX y actualiza la tabla con los nuevos datos. El siguiente ejemplo asume que tiene un servicio web que devuelve los datos de la nueva página.
$ (documento) .ready (function () {
$ ('a.pager-link'). click (function () {
var page = $ (esto) .attr ('href'). split (/ \? /) [1];
$ .ajax ({
tipo: 'POST',
url: '/ ruta al servicio',
datos: página,
éxito: función (contenido) {
$ ('# myTable'). html (contenido); // reemplazar
}
});
falso retorno; // para detener el enlace
});
});
|
También creo que location.replace (URL) es la mejor manera, pero si desea notificar a los motores de búsqueda sobre su redirección (no analizan el código JavaScript para ver la redirección), debe agregar la meta rel = "canonical" etiqueta a su sitio web.
Agregar una sección noscript con una metaetiqueta de actualización de HTML en ella también es una buena solución. Le sugiero que utilice esta herramienta de redirección de JavaScript paracrear redirecciones. También tiene soporte para Internet Explorer para pasar la referencia HTTP.
El código de muestra sin demora se ve así:







  



|
Pero si alguien quiere redirigir a la página de inicio, puede usar el siguiente fragmento.
window.location = window.location.host
Sería útil si tiene tres entornos diferentes como desarrollo, preparación y producción.
Puede explorar este objeto window o window.location simplemente poniendo estas palabras en Chrome Console o Firebug's Console.
|
JavaScript le proporciona muchos métodos para recuperar y cambiar la URL actual que se muestra en la barra de direcciones del navegador. Todos estos métodos utilizan el objeto Location, que es una propiedad del objeto Window. Puede crear un nuevo objeto de ubicación que tenga la URL actual de la siguiente manera ...
var currentLocation = window.location;
Estructura básica de una URL
//:/ 
Protocolo: especifica el nombre del protocolo que se utilizará para acceder al recurso en Internet. (HTTP (sin SSL) o HTTPS (con SSL))
nombre de host: el nombre de host especifica el host que posee el recurso. Por ejemplo, www.stackoverflow.com. Un servidor proporciona servicios utilizando el nombre del host.
puerto: un número de puerto que se utiliza para reconocer un proceso específico al que se debe reenviar un mensaje de Internet u otro mensaje de red cuando llega a un servidor.
nombre de ruta: la ruta brinda información sobre el recurso específico dentro del host al que el cliente web desea acceder. Por ejemplo, stackoverflow.com/index.html.
consulta: una cadena de consulta sigue el componente de ruta y proporciona una cadena de información que el recurso puede utilizar para algún propósito (por ejemplo, como parámetros para una búsqueda o como datos para procesar).
hash: la parte de anclaje de una URL, incluye el signo de almohadilla (#).
Con estas propiedades del objeto de ubicación, puede acceder a todos estos componentes de URL
hash: establece o devuelve la parte de anclaje de una URL.
host -Conjuntos
o devuelve el nombre de host y el puerto de una URL.
hostname -Sets o
devuelve el nombre de host de una URL.
href: establece o devuelve el
URL.
nombre de ruta: establece o devuelve el nombre de ruta de una URL.
puerto: establece o devuelve el número de puerto que utiliza el servidor para una URL.
protocolo: establece o devuelve el protocolo de una URL.
búsqueda -Conjuntos
o devuelve la parte de consulta de una URL
Ahora, si desea cambiar una página o redirigir al usuario a otra página, puede usar la propiedad href del objeto Ubicación de esta manera
Puede utilizar la propiedad href del objeto Location.
window.location.href = "http://www.stackoverflow.com";
El objeto de ubicación también tiene estos tres métodos
asignar (): carga un nuevo documento.
reload (): vuelve a cargar el documento actual.
replace (): reemplaza el documento actual por uno nuevo
Puede usar los métodos asignar () y reemplazar también para redirigir a otras páginas como estas
location.assign ("http://www.stackoverflow.com");
location.replace ("http://www.stackoverflow.com");
En qué difiere asignar () y reemplazar (): la diferencia entre el método reemplazar () y el método asignar () () es que reemplazar () elimina la URL del documento actual del historial del documento, lo que significa que no es posible usar el botón "atrás" para navegar de regreso al documento original. Por lo tanto, use el método assign () si desea cargar un nuevo documento y desea dar la opción de navegar de regreso al documento original.
Puede cambiar la propiedad href del objeto de ubicación usando jQuery también así
$ (ubicación) .attr ('href', url);
Y, por lo tanto, puede redirigir al usuario a otra URL.
|
Básicamente, jQuery es solo un marco de JavaScript y para hacer algunas de las cosas como la redirección en este caso, puede usar JavaScript puro, por lo que en ese caso tiene 3 opciones usando vainillaJavaScript:
1) Al usar reemplazo de ubicación, esto reemplazará el historial actual de la página, lo que significa que no es posible usar el botón Atrás para volver a la página original.
window.location.replace ("http://stackoverflow.com");
2) Usando la asignación de ubicación, esto mantendrá el historial para usted y con el botón de retroceso, puede volver a la página original:
window.location.assign ("http://stackoverflow.com");
3) Recomiendo usar una de esas formas anteriores, pero esta podría ser la tercera opción usando JavaScript puro:
window.location.href = "http://stackoverflow.com";
También puede escribir una función en jQuery para manejarlo, pero no se recomienda ya que solo es una función de JavaScript pura de una línea, también puede usar todas las funciones anteriores sin ventana si ya está en el alcance de la ventana, por ejemplo, window.location.replace ("http://stackoverflow.com"); podría ser location.replace ("http://stackoverflow.com");
También los muestro todos en la imagen de abajo:
|
Debería poder configurarlo usando window.location.
Ejemplo:
window.location = "https://stackoverflow.com/";
Aquí hay una publicación anterior sobre el tema: ¿Cómo redirecciono a otra página web?
|
Antes de comenzar, jQuery es una biblioteca de JavaScript utilizada para la manipulación de DOM. Por lo tanto, no debería usar jQuery para una redirección de página.
Una cita de Jquery.com:
Si bien jQuery puede ejecutarse sin problemas importantes en versiones anteriores del navegador,
no probamos activamente jQuery en ellos y generalmente no corregimos errores
que pueda aparecer en ellos.
Fue encontrado aquí:
https://jquery.com/browser-support/
Por lo tanto, jQuery no es una solución definitiva para la compatibilidad con versiones anteriores.
La siguiente solución que utiliza JavaScript sin formato funciona en todos los navegadores y ha sido estándar durante mucho tiempo, por lo que no necesita ninguna biblioteca para la compatibilidad con varios navegadores.
Esta página se redireccionará a Google después de 3000 milisegundos.



 ejemplo 


Será redirigido a Google en breve.

Las diferentes opciones son las siguientes: window.location.href = "url"; // Simula la navegación normal a una nueva página window.location.replace ("url"); // Elimina la URL actual del historial y la reemplaza con una nueva URL window.location.assign ("url"); // Agrega una nueva URL a la pila de historial y redirige a la nueva URL window.history.back (); // Simula un clic en el botón Atrás window.history.go (-1); // Simula un clic en el botón Atrás window.history.back (-1); // Simula un clic en el botón Atrás window.navigate ("página.html"); // Igual que window.location = "url" Cuando se usa reemplazar, el botón de retroceso no volverá a la página de redireccionamiento, como si nunca hubiera estado en el historial. Si desea que el usuario pueda volver a la página de redireccionamiento, utilice window.location.href o window.location.assign. Si usa una opción que le permite al usuario volver a la página de redireccionamiento, recuerde que cuando ingrese a la página de redireccionamiento, lo redireccionará nuevamente. Así que tenlo en cuenta al elegir una opción para tu redirección. En condiciones en las que la página solo se redirige cuando el usuario realiza una acción, entonces estará bien tener la página en el historial del botón Atrás. Pero si la página se redirecciona automáticamente, entonces debe usar reemplazar para que el usuario pueda usar el botón Atrás sin verse obligado a regresar a la página que envía la redirección. También puede utilizar metadatos para ejecutar una redirección de página como se indica a continuación. Actualizar META Ubicación META Secuestro de BASE En esta página se pueden encontrar muchos más métodos para redirigir a su cliente desprevenido a una página a la que quizás no deseen ir (ninguno de ellos depende de jQuery): https://code.google.com/p/html5security/wiki/RedirectionMethods También me gustaría señalar que a las personas no les gusta que las redireccionen al azar. Solo redirija a las personas cuando sea absolutamente necesario. Si comienza a redirigir a las personas al azar, nunca volverán a visitar su sitio. El siguiente párrafo es hipotético: También puede ser reportado como un sitio malicioso. Si eso sucede, cuando las personas hacen clic en un enlace a su sitio, el navegador del usuario puede advertirles que su sitio es malicioso. Lo que también puede suceder es que los motores de búsqueda comiencen a bajar su calificación si las personas informan una mala experiencia en su sitio. Consulte las Directrices para webmasters de Google sobre redireccionamientos: https://support.google.com/webmasters/answer/2721217?hl=es&ref_topic=6001971 Aquí hay una pequeña página divertida que lo saca de la página. Vete

Vete

Si combina los ejemplos de dos páginas, tendrá un ciclo infantil de redireccionamiento quegarantizará que su usuario nunca más querrá volver a utilizar su sitio. | var url = 'asdf.html'; window.location.href = url; | Puede hacer eso sin jQuery como: window.location = "http://yourdomain.com"; Y si solo quieres jQuery, puedes hacerlo así: $ jq (ventana) .attr ("ubicación", "http://yourdomain.com"); | Esto funciona con jQuery: $ (ventana) .attr ("ubicación", "http://google.fr"); | # Redireccionamiento de páginas HTML mediante el método jQuery / JavaScript Prueba este código de ejemplo: función YourJavaScriptFunction () { var i = $ ('# login'). val (); si (i == 'iniciar sesión') window.location = "Login.php"; más window.location = "Logout.php"; } Si desea proporcionar una URL completa como window.location = "www.google.co.in" ;. | Pregunta original: "¿Cómo redirigir usando jQuery?", Por lo tanto, la respuesta implementa jQuery >> Caso de uso complementario. Para simplemente redirigir a una página con JavaScript: window.location.href = "/ contacto /"; O si necesita un retraso: setTimeout (function () { window.location.href = "/ contacto /"; }, 2000); // Tiempo en milisegundos jQuery le permite seleccionar elementos de una página web con facilidad. Puede encontrar lo que desee en una página y luego usar jQuery para agregar efectos especiales, reaccionar a las acciones del usuario o mostrar y ocultar contenido dentro o fuera del elemento que ha seleccionado. Todas estas tareas comienzan con saber seleccionar un elemento o un evento. $ ('a, img'). on ('clic', función (e) { e.preventDefault (); $ (esto) .animate ({ opacity: 0 // Pon algo de animación CSS aquí }, 500); setTimeout (function () { // OK, terminado el personal de jQuery, vamos a redireccionar window.location.href = "/ contacto /"; }, 500); }); Imagina que alguien escribió un script / complemento con 10000 líneas de código. Con jQuery puede conectarse a este código con solo una línea o dos. | Necesitas poner esta línea en tu código: $ (ubicación) .attr ("href", "http://stackoverflow.com"); Si no tiene jQuery, vaya con JavaScript: window.location.replace ("http://stackoverflow.com"); window.location.href ("http://stackoverflow.com"); | Entonces, la pregunta es cómo hacer una página de redireccionamiento y no cómo redirigir a un sitio web. Solo necesita usar JavaScript para esto. Aquí hay un pequeño código que creará una página de redireccionamiento dinámico. Entonces, digamos que simplemente colocó este fragmento en un archivo redirect / index.html en su sitio web, puede usarlo así. http://www.mywebsite.com/redirect?url=http://stackoverflow.com Y si va a ese enlace, lo redireccionará automáticamente a stackoverflow.com. Enlace a la documentación Y así es como haces una página de redireccionamiento simple con JavaScript. Editar: También hay una cosa a tener en cuenta. He agregado window.location.replace en mi código porque creo que se adapta a una página de redireccionamiento, pero debe saber que cuando usa window.location.replace y es redirigido, cuando presiona el botón Atrás en su navegador no lo hará. regresó a la página de redireccionamiento, y volverá a la página anterior, eche un vistazo a esta pequeña demostración. Ejemplo: El proceso: store home => redirigir la página a google => google Cuando en google: google => botón de retroceso en el navegador => inicio de la tienda Entonces, si esto se adapta a sus necesidades, entonces todo debería estar bien. Si desea incluir la página de redireccionamiento en el historial del navegador, reemplace este if (url) window.location.replace (url); con if (url) window.location.href = url; | En su función de clic, simplemente agregue: window.location.href = "La URL a la que desea redirigir"; $ ('# id'). click (function () { window.location.href = "http://www.google.com"; }); | Prueba esto: location.assign ("http://www.google.com"); Fragmento de código de ejemplo. | jQuery no es necesario. Puedes hacerlo: window.open ("URL", "_ self", "", "") ¡Es así de fácil! La mejor manera de iniciar una solicitud HTTP es con document.loacation.href.replace ('URL'). | Primero escribe correctamente. Desea navegar dentro de una aplicación para obtener otro enlace de su aplicación para otro enlace. Aquí está el código: window.location.href = "http://www.google.com"; Y si desea navegar por las páginas dentro de su aplicación, también tengo código, si lo desea. | Puede redirigir en jQuery así: $ (ubicación) .attr ('href', 'http://yourPage.com/'); | Usando JavaScript: Método 1: window.location.href = "http://google.com"; Método 2: window.location.replace ("http://google.com"); Usando jQuery: Método 1: $ (ubicación) $ (ubicación) .attr ('href', 'http://google.com'); Método 2: función reutilizable jQuery.fn.redirectTo = function (url) { window.location.href = url; } jQuery (ventana) .redirectTo ("http://google.com"); | En JavaScript y jQuery podemos usar el siguiente código para redirigir una página a otra página: window.location.href = "http://google.com"; window.location.replace ("page1.html"); | ECMAScript 6 + jQuery, 85 bytes $ ({jQueryCode: (url) => location.replace (url)}). attr ("jQueryCode") ("http://example.com") Por favor no matesyo, esto es una broma. Es una broma. Esto es una broma. Esto "proporcionó una respuesta a la pregunta", en el sentido de que pedía una solución "usando jQuery" que en este caso implica forzarlo en la ecuación de alguna manera. Ferrybig aparentemente necesita que le expliquen la broma (todavía bromeo, estoy seguro de que hay opciones limitadas en el formulario de revisión), así que sin más preámbulos: Otras respuestas están usando attr () de jQuery en la ubicación o los objetos de ventana innecesariamente. Esta respuesta también abusa de ella, pero de una forma más ridícula. En lugar de usarlo para establecer la ubicación, utiliza attr () para recuperar una función que establece la ubicación. La función se llama jQueryCode aunque no hay nada jQuery al respecto, y llamar a una función somethingCode es simplemente horrible, especialmente cuando el algo ni siquiera es un idioma. Los "85 bytes" son una referencia a Code Golf. El golf, obviamente, no es algo que deba hacer fuera del código de golf y, además, esta respuesta claramente no es realmente golf. Básicamente, encogerse. | Javascript: window.location.href = 'www.your_url.com'; window.top.location.href = 'www.your_url.com'; window.location.replace ('www.your_url.com'); Jquery: var url = 'www.your_url.com'; $ (ubicación) .attr ('href', url); $ (ubicación) .prop ('href', url); // en lugar de la ubicación puede usar la ventana | Aquí hay una redirección de retardo de tiempo. Puede configurar el tiempo de retraso como desee: Título de su documento
¡Serás redirigido en 8 segundos!
| Hay tres formas principales de hacer esto, window.location.href = 'blaah.com'; window.location.assign ('blaah.com'); y... window.location.replace ('blaah.com'); El último es el mejor, para un redireccionamiento tradicional, porque no guardará la página a la que fue antes de ser redirigido en su historial de búsqueda. Sin embargo, si solo desea abrir una pestaña con JavaScript, puede usar cualquiera de los anteriores. EDITAR: El prefijo de la ventana es opcional. | 1 2 Siguiente No es la respuesta que estás buscando? Examine otras preguntas etiquetadas javascript jquery redirect o formule su propia pregunta.